using System.Collections.Generic;
using System.Threading.Tasks;
using ERP.WorkforceManage.Dtos;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;

namespace ERP.WorkforceManage
{
    /// <summary>
    /// 班组服务接口
    /// </summary>
    public interface ITeamService : IApplicationService
    {
        /// <summary>
        /// 获取班组分页列表
        /// </summary>
        Task<PagedResultDto<TeamDto>> GetListAsync(GetTeamInputDto input);

        /// <summary>
        /// 获取班组详情
        /// </summary>
        Task<TeamDto> GetAsync(int id);

        /// <summary>
        /// 创建班组
        /// </summary>
        Task<TeamDto> CreateAsync(CreateTeamDto input);

        /// <summary>
        /// 更新班组
        /// </summary>
        Task<TeamDto> UpdateAsync(int id, UpdateTeamDto input);

        /// <summary>
        /// 删除班组
        /// </summary>
        Task DeleteAsync(int id);

        /// <summary>
        /// 获取用户选择列表
        /// </summary>
        Task<PagedResultDto<UserSelectDto>> GetUserSelectListAsync(GetUserSelectInputDto input);

        /// <summary>
        /// 生成班组编号
        /// </summary>
        Task<string> GenerateTeamNumberAsync();

        /// <summary>
        /// 根据用户ID列表获取用户信息
        /// </summary>
        Task<List<UserSelectDto>> GetSelectedUsersInfoAsync(List<int> userIds);
    }
} 